using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;
using ENT_Entidades;


namespace MisErrores
{
    public enum DescNumError { 
            
    }

    public enum Sector { 
        planesAg = 1
    }
    public class MessageBoxError
    {

        private bool _HayError;
        public bool HayError
        {
            get { return _HayError; }
            set { _HayError = value; }
        }
                
        private string _tituloError;
        public string TituloError
        {
            get { return _tituloError; }
            set { _tituloError = value; }
        }

        private string _msgError;
        public string MsgError
        {
            get 
            {
                if (_msgError == null)
                {
                    try
                    {
                        _msgError = ListaDeErrores[0].ToString();
                    }
                    catch (Exception)
                    {
                        _msgError = "Error";                        
                    }
                    
                }
                return _msgError; 
            }
            set 
            {                 
               agregarError(value);               
            }
        }

        public int cantErrores
        {
            get {return ListaDeErrores.Count; }
        }
        //TODO:falta indicar icono

        //TODO:falta indicar botones

        //TODO:falta indicar lista de errores


        private ArrayList _listaDeErrores;

        private ArrayList ListaDeErrores
        {
            get 
            {
                if (_listaDeErrores == null) { _listaDeErrores = new ArrayList(); }
                return _listaDeErrores; 
            }            
        }

        //public void agregarError(dtsErrores dts,Sector sec)
        //{
        //    if (dts.Error[0].hayError == 1 )
        //    {
                
        //        agregarError(dts.Error[0].msgError.ToString());                
        //    }            
        //}



        public void agregarError(string msgError)
        {
            ListaDeErrores.Add(msgError);
        }

        public void agregarError(dtsErrores dts,Modulos mod)
        {
            if (dts!=null)
            {

                ListaDeErrores.Add(procesarMsgSQL(dts.Error[0],mod));    
            }
            
        }

        private string procesarMsgSQL(dtsErrores.ErrorRow errorRow, Modulos mod)
        {
            string rta = errorRow.msgError;

            if (errorRow.numError == 0)
            {
                if (mod.Equals(Modulos.TIPO_DESV))
                {
                    rta = errorRow.msgError;//FALTA: personalizar para la pantalla
                }    
            }
            return rta;
        }

        public void quitarError(int indice)
        {
            ListaDeErrores.RemoveAt(indice);
        }

        public ArrayList getErrores()
        {
            return ListaDeErrores;
        }
    }
}
